d(X, Y) :- f(Y), a(X,Y).
d(8, 9).

a(X, Y) :- print('Entrando con '), print(X), print('\n'), b(X), print('ja'), !, c(X), c(Y).
b(1).
b(2).
b(3).

c(2).
c(3).

f(1).
f(2).


inorder1(nil,[]).
inorder1(bin(I,R,D),L) :- inorder1(I,LI),inorder1(D,LD),length(LD,X), print(X), print('\n'), append(LI,[R|LD],L).
inorder2(nil,[]).
inorder2(bin(I,R,D),L) :- append(LI,[R|LD],L),inorder2(I,LI),inorder2(D,LD).


% inorder1(A, [1,2,3]).
% inorder2(A, [1,2,3]).
% inorder1(bin(bin(nil, 1, nil), 2, bin(nil, 3, nil)),L).
% inorder2(bin(bin(nil, 1, nil), 2, bin(nil, 3, nil)),[1,2,3]).
